'\" t
.\" Copyright (c) 2006, 2008, Michael Kerrisk
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.TH futimes 3 2024-05-02 "Linux man-pages 6.9.1"
.SH NAME
futimes, lutimes \- change file timestamps
.SH LIBRARY
Standard C library
.RI ( libc ", " \-lc )
.SH SYNOPSIS
.nf
.B #include <sys/time.h>
.P
.BI "int futimes(int " fd ", const struct timeval " tv [2]);
.BI "int lutimes(const char *" filename ", const struct timeval " tv [2]);
.fi
.P
.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.RE
.P
.BR futimes (),
.BR lutimes ():
.nf
    Since glibc 2.19:
        _DEFAULT_SOURCE
    glibc 2.19 and earlier:
        _BSD_SOURCE
.fi
.SH DESCRIPTION
.BR futimes ()
changes the access and modification times of a file in the same way as
.BR utimes (2),
with the difference that the file whose timestamps are to be changed
is specified via a file descriptor,
.IR fd ,
rather than via a pathname.
.P
.BR lutimes ()
changes the access and modification times of a file in the same way as
.BR utimes (2),
with the difference that if
.I filename
refers to a symbolic link, then the link is not dereferenced:
instead, the timestamps of the symbolic link are changed.
.SH RETURN VALUE
On success, zero is returned.
On error, \-1 is returned, and
.I errno
is set to indicate the error.
.SH ERRORS
Errors are as for
.BR utimes (2),
with the following additions for
.BR futimes ():
.TP
.B EBADF
.I fd
is not a valid file descriptor.
.TP
.B ENOSYS
The
.I /proc
filesystem could not be accessed.
.P
The following additional error may occur for
.BR lutimes ():
.TP
.B ENOSYS
The kernel does not support this call; Linux 2.6.22 or later is required.
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
.TS
allbox;
lbx lb lb
l l l.
Interface	Attribute	Value
T{
.na
.nh
.BR futimes (),
.BR lutimes ()
T}	Thread safety	MT-Safe
.TE
.SH STANDARDS
Linux, BSD.
.SH HISTORY
.TP
.BR futimes ()
glibc 2.3.
.TP
.BR lutimes ()
glibc 2.6.
.SH NOTES
.BR lutimes ()
is implemented using the
.BR utimensat (2)
system call.
.SH SEE ALSO
.BR utime (2),
.BR utimensat (2),
.BR symlink (7)
